Telegram Group Search
🌐 Отложенная инициализация свойств

Отложенная инициализация свойств — это механизм, который позволяет отложить инициализацию переменных до момента их первого использования.

Этот вариант позволяет экономить ресурсы, т.к. избегает необходимости создания объектов при инициализации класса.

➡️ lateinit

Модификатор lateinit говорит о том, что данная переменная будет инициализирована позже. При этом инициализировать свойство можно из любого места, откуда она видна.

Правила использования модификатора lateinit:

🔵 lateinit может использоваться только с var свойствами класса;

🔵 lateinit может быть применен только к свойствам, объявленным внутри тела класса (но не в основном конструкторе), а также к переменным на верхнем уровне и локальным переменным;

🔵 lateinit свойства могут иметь любой тип, кроме примитивных типов (таких как Int, Long, Double и т.д.);

🔵 lateinit свойства не могут быть nullable (т.е. обязательно должно быть объявлены без знака вопроса);

🔵 lateinit свойства не могут быть проинициализированы сразу при их объявлении;

🔵 lateinit свойства должны быть инициализированы до первого обращения к ним, иначе будет выброшено исключение UninitializedPropertyAccessException;

🔵 Нельзя использовать lateinit для переменных, определенных внутри локальных областей видимости (например, внутри функций);

🔵 При использовании модификатора lateinit у свойства не должно быть пользовательских геттеров и сеттеров.

Для проверки факта инициализации переменной вызывайте метод isInitialized(). Функцию следует использовать экономно — не следует добавлять эту проверку к каждой переменной с отложенной инициализацией. Если вы используете isInitialized() слишком часто, то скорее всего вам лучше использовать тип с поддержкой null.

lateinit var catName: String

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

catName = "Barsik"

if (::catName.isInitialized) {
Log.d("Kot", "Hi, $catName")
}
}


А вы используете lateinit в своих проектах? 💬

🐸 Библиотека мобильного разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 git cherry-pick – переносим отдельные коммиты между ветками

Знакомая ситуация? Вы исправили баг в feature-branch, но нужно срочно добавить этот фикс в main без мержа всей ветки.

Вот как это работает:

git cherry-pick <hash-коммита>  # переносит указанный коммит в текущую ветку


Пример использования:

1. Нашли коммит с нужным исправлением:

git log feature-branch --oneline  # копируем хеш коммита


2. Переключились на main и применили его:

git checkout main
git cherry-pick abc1234


💡 Когда пригодится:

🔵 Срочные фиксы – перенос исправления из разработки в прод без полного мержа.
🔵 Частичные обновления – нужно взять только один коммит из чужой ветки.
🔵 Ошибки в ветвлении – забыли сделать коммит в нужной ветке? cherry-pick спасает!

Вы уже использовали cherry-pick? Делитесь кейсами в комментариях 👇

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🖱 Мастерство фокусов на Compose

Фокусировка в Jetpack Compose — это не просто перемещение курсора между элементами. За этим процессом стоит сложная система нод, модификаторов и алгоритмов, которые определяют, какой элемент должен получить фокус в каждый момент времени.

В этой статье автор разберёт основы: что такое фокус, как он работает, какие модификаторы и инструменты предоставляет Jetpack Compose, а также как использовать их для построения удобных интерфейсов.

👉 Читать статью

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Нативная или кроссплатформенная разработка

Как показывает практика, это актуальная дилемма как для заказчиков, так и для начинающих разработчиков, которые хотят приобрести наиболее полезный опыт для дальнейшей карьеры.

Кроссплатформенные приложения дешевле, работают сразу на двух платформах, а дизайн и разработка занимают меньше времени.

Нативные приложения дороже, зато обеспечивают лучший пользовательский опыт и подходят для крупных и долгосрочных проектов.

Что вы предпочитаете для мобильной разработки? Голосуйте и пишите своё мнение в комментариях
💬

❤️
нативная разработка
👍
кроссплатформенная

🐸 Библиотека мобильного разработчика

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😨 Топ-вакансий для мобильных разработчиков за неделю

Senior Flutter Developer от 3 000 до 6 000 €, офис (Кипр)

Разработчик React Nativeдо 160 000 ₽, гибрид (Калининград)

Senior Android-разработчик в Mobile-Coreгибрид (Москва)

Kotlin / Flutter expert (проектная занятость)удалёнка

Стажёр-разработчик IOS, Ozon Techгибрид

➡️ Еще больше топовых вакансий — в нашем канале Mobile jobs

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🤖 Инструмент недели: Androidify

Робот Android — любимый маскот пользователей и разработчиков Android. И предыдущие версии конструктора таких ботов были очень популярны — в Google в этом году переделали конструктор ботов с нуля, используя новейшие технологии, поддерживаемые Gemini.

Недавно компания выпустила новое приложение с открытым исходным кодом, Androidify, с помощью которого можно научиться создавать мощный опыт на базе ИИ на Android с использованием новейших технологий.

👉 Подробнее в статье

💻 Androidify на GitHub

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🤫 Cекреты производительности на iOS

Автор доклада расскажет, как с помощью анализа кода и ряда оптимизаций удалось ускорить работу компонентов iOS-приложения в 5–10 раз и как это повлияло на основные метрики скорости приложения.

Также автор обсудит идеи, стратегии и трюки, которые сделали возможным это улучшение, начиная с диагностики проблемы и заканчивая реализацией самых эффективных решений.

👀 Смотреть доклад

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м

Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.

Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:

— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы

Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.

⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
📝 Промпт дня: генерация кода для RecyclerView/ListView

Устали вручную писать адаптеры для списков? Попробуйте этот промпт, чтобы ускорить разработку.

⚙️ Промпт для ChatGPT/Copilot:

Generate a complete RecyclerView adapter in Kotlin for displayin
1. ViewHolder pattern implementation
2. Click listeners for items
3. DiffUtil for efficient updates
4. Support for multiple view types
Include sample data class and usage example in Activity/Fragment.


📌 Варианты уточнений:

🔵 Add pull-to-refresh functionality

🔵 Implement animated item insertion/removal

🔵 Add sticky headers implementation

🔵 Optimize for large datasets with pagination

💡 Cовет:

Добавьте Explain each part of the implementation, если хотите не просто код, а объяснение архитектурных решений.

Какой ваш любимый способ работы со списками? Делитесь в комментариях 💬

🐸 Библиотека мобильного разработчика

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Создание кастомного тултипа

В мире мобильной разработки удобство и интуитивность интерфейса играют ключевую роль. Одним из способов улучшения пользовательского опыта является предоставление дополнительной информации в нужный момент, и для этого идеально подходят тултипы.

В статье автор разберёт, как создать гибкую и удобную систему тултипов в Jetpack Compose, используя модифайры и специальный оборачивающий блок. Шаг за шагом будет рассмотрено создание необходимых компонентов, их взаимодействие и методы управления тултипом.

👉 Читать статью

🐸 Библиотека мобильного разработчика

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👾 AI-агенты — настоящее, о котором все говорят

На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉

Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи!

На обучении вы соберете полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов.

🎓 В рамках курса вы научитесь:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Разберете реальные кейсы и научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд.

Старт 5 июля, а при оплате до 1 июня действует дополнительная скидка и бонус — эксклюзивный лонгрид по API и ML от Proglib.

Начните осваивать тему уже сейчас 👉 https://clc.to/Cttu7A
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck pinned «👾 AI-агенты — настоящее, о котором все говорят На днях мы анонсировали наш новый курс AI-агенты для DS-специалистов 🎉 Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи! На обучении вы соберете полноценные…»
🎁 Linux vs. Windows: битва операционных систем

Linux и Windows - два гиганта в мире операционных систем, между которыми уже давно идет битва за предпочтение пользователей.

Каждая из них имеет свои преимущества и недостатки, и выбор между ними зависит от конкретных потребностей и предпочтений пользователя.

Чему вы отдаете предпочтение? Голосуйте и пишите своё мнение в комментариях
💬

❤️ 
— Linux
👍 
Windows
👏 — другое

🐸 Библиотека мобильного разработчика 

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/05/30 01:54:30
Back to Top
HTML Embed Code: